package Easy;
//66. 加一
//回想起第二题，想起来不能有直接加法的操作，因此需要改进进位机制的判断。
public class Solution66 {
    public static int[] plusOne(int[] digits) {
        if (digits[digits.length - 1] != 9) {
            digits[digits.length - 1] = digits[digits.length - 1] + 1;
            return digits;
        }
        int i ;
        for(i=0;i<digits.length;i++){
            if(digits[i]!=9)
                break;
        }
        if(i==digits.length){
            //需要进位
            int[] res = new int[digits.length + 1];
            res[0] = 1;
            return res;
        }
        else {
            //不需要进位
            for (i = digits.length - 1; i > -1; i--) {
                if(digits[i]==9)
                    digits[i]=0;
                else {
                    digits[i] = digits[i]+1;
                    break;
                }
            }
            return digits;
        }
    }


    public static void main(String[] args) {
        int[] ints = plusOne(new int[]{9, 9, 9, 9});
//        int[] ints =plusOne(new int[]{1,9,9,9});
        for(int e:ints)
            System.out.print(e+" ");
    }
}
